package com.ruoyi.qsng.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 课程信息对象 k_course
 *
 * @author kanglou
 * @date 2023-06-07
 */
@ApiModel("课程信息对象 k_course")
@Data
public class KCourse extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 是否代购 0否1是 */
    @Excel(name = "是否代购 0否1是")
    private int isOwn;

    @ApiModelProperty("业务字段---活动场地")
    private String activityVenueApp;



    @ApiModelProperty("业务字段---班次")
    private String classesApp;

    @ApiModelProperty("业务字段---班级")
    private String classApp;


    /** 业务字段--活动名称 */
    @ApiModelProperty(" 业务字段--是否收藏了 0否 1是")
    private Long isCollect;

    /** 业务字段--活动名称 */
    @ApiModelProperty(" 业务字段--是否报名（包含已报名未缴费） 0否 1是（之前报名没做限制 可能是大于1）")
    private Long isApplication;

    @ApiModelProperty(" 业务字段--当前状态0发起购买1已购买")
    private Integer state;

    @ApiModelProperty(" 业务字段--当前状态0发起购买1已购买")
    private String orderId;

    @ApiModelProperty(" 奖状图片多个逗号隔开")
    private String awardImage;

    /** 课程名称 */
    @Excel(name = "课程名称")
    @ApiModelProperty("课程名称")
    private String name;

    /** 教师 */
    @Excel(name = "教师")
    @ApiModelProperty("教师")
    private String teacher;

    /** 教师介绍 */
    @Excel(name = "教师介绍")
    @ApiModelProperty("教师介绍")
    private String teacherContent;

    /** 课程宣传图 */
    @Excel(name = "课程宣传图")
    @ApiModelProperty("课程宣传图")
    private String picture;

    /** 课程介绍 */
    @Excel(name = "课程介绍")
    @ApiModelProperty("课程介绍")
    private String content;

    /** 课程分类 */
    @Excel(name = "课程分类")
    @ApiModelProperty("课程分类")
    private String courseType;

    /** 课程班次 */
    @Excel(name = "课程班次")
    @ApiModelProperty("课程班次")
    private String courseClasses;

    /** 课程地点 */
    @Excel(name = "课程地点")
    @ApiModelProperty("课程地点")
    private String courseLocation;

    /** 班级分类 */
    @Excel(name = "班级分类")
    @ApiModelProperty("班级分类")
    private String classCategory;

    /** 年龄段 */
    @ApiModelProperty("年龄段")
    private String ageGroup;

    /** 总名额 */
    @Excel(name = "总名额")
    @ApiModelProperty("总名额")
    private Integer totalQuota;

    /** 剩余名额 */
    @Excel(name = "剩余名额")
    @ApiModelProperty("剩余名额")
    private Integer remainingQuota2;

    /** 上课时间 */
    @Excel(name = "上课时间")
    @ApiModelProperty("上课时间")
    private String classTime;

    /** 节次 */
    @Excel(name = "节次")
    @ApiModelProperty("节次")
    private Integer section;

    /** 单价 */
    @Excel(name = "单价")
    @ApiModelProperty("单价")
    private BigDecimal price;

    /** 报名开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("报名开始时间")
    @Excel(name = "报名开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date bmKssj;

    /** 报名结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("报名结束时间")
    @Excel(name = "报名结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date bmJssj;

    /** 开课开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("开课开始时间")
    @Excel(name = "开课开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date kkKksj;

    /** 开课结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("开课结束时间")
    @Excel(name = "开课结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date kkJssj;

    /** 课程状态0下架1上架 */
    @Excel(name = "课程状态", readConverterExp = "0=下架,1=上架")
    @ApiModelProperty("课程状态0下架1上架")
    private Integer courseState;

    @ApiModelProperty("业务字段---学生年龄")
    @Excel(name = "年龄段")
    private String ageApp;

    /** 兑换积分值 */
    @Excel(name = "兑换积分值")
    @ApiModelProperty("兑换积分值")
    private Integer exchangeIntegral;

    /** 报名须知 */
    @Excel(name = "报名须知")
    @ApiModelProperty("报名须知")
    private String notice;

    @ApiModelProperty("已售名额")
    private Long sold;

    /** 主键 */
    private String id;

    private Long userId;

    public void setName(String name)
    {
        this.name = name;
    }

    public String getName()
    {
        return name;
    }
    public void setTeacher(String teacher)
    {
        this.teacher = teacher;
    }

    public String getTeacher()
    {
        return teacher;
    }
    public void setTeacherContent(String teacherContent)
    {
        this.teacherContent = teacherContent;
    }

    public String getTeacherContent()
    {
        return teacherContent;
    }
    public void setPicture(String picture)
    {
        this.picture = picture;
    }

    public String getPicture()
    {
        return picture;
    }
    public void setContent(String content)
    {
        this.content = content;
    }

    public String getContent()
    {
        return content;
    }
    public void setCourseType(String courseType)
    {
        this.courseType = courseType;
    }

    public String getCourseType()
    {
        return courseType;
    }
    public void setCourseClasses(String courseClasses)
    {
        this.courseClasses = courseClasses;
    }

    public String getCourseClasses()
    {
        return courseClasses;
    }
    public void setCourseLocation(String courseLocation)
    {
        this.courseLocation = courseLocation;
    }

    public String getCourseLocation()
    {
        return courseLocation;
    }
    public void setClassCategory(String classCategory)
    {
        this.classCategory = classCategory;
    }

    public String getClassCategory()
    {
        return classCategory;
    }
    public void setAgeGroup(String ageGroup)
    {
        this.ageGroup = ageGroup;
    }

    public String getAgeGroup()
    {
        return ageGroup;
    }
    public void setTotalQuota(Integer totalQuota)
    {
        this.totalQuota = totalQuota;
    }

    public Integer getTotalQuota()
    {
        return totalQuota;
    }
    public void setRemainingQuota2(Integer remainingQuota2)
    {
        this.remainingQuota2 = remainingQuota2;
    }

    public Integer getRemainingQuota2()
    {
        return remainingQuota2;
    }
    public void setClassTime(String classTime)
    {
        this.classTime = classTime;
    }

    public String getClassTime()
    {
        return classTime;
    }
    public void setSection(Integer section)
    {
        this.section = section;
    }

    public Integer getSection()
    {
        return section;
    }
    public void setPrice(BigDecimal price)
    {
        this.price = price;
    }

    public BigDecimal getPrice()
    {
        return price;
    }
    public void setBmKssj(Date bmKssj)
    {
        this.bmKssj = bmKssj;
    }

    public Date getBmKssj()
    {
        return bmKssj;
    }
    public void setBmJssj(Date bmJssj)
    {
        this.bmJssj = bmJssj;
    }

    public Date getBmJssj()
    {
        return bmJssj;
    }
    public void setKkKksj(Date kkKksj)
    {
        this.kkKksj = kkKksj;
    }

    public Date getKkKksj()
    {
        return kkKksj;
    }
    public void setKkJssj(Date kkJssj)
    {
        this.kkJssj = kkJssj;
    }

    public Date getKkJssj()
    {
        return kkJssj;
    }
    public void setCourseState(Integer courseState)
    {
        this.courseState = courseState;
    }

    public Integer getCourseState()
    {
        return courseState;
    }
    public void setExchangeIntegral(Integer exchangeIntegral)
    {
        this.exchangeIntegral = exchangeIntegral;
    }

    public Integer getExchangeIntegral()
    {
        return exchangeIntegral;
    }
    public void setNotice(String notice)
    {
        this.notice = notice;
    }

    public String getNotice()
    {
        return notice;
    }
    public void setId(String id)
    {
        this.id = id;
    }

    public String getId()
    {
        return id;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("name", getName())
            .append("teacher", getTeacher())
            .append("teacherContent", getTeacherContent())
            .append("picture", getPicture())
            .append("content", getContent())
            .append("courseType", getCourseType())
            .append("courseClasses", getCourseClasses())
            .append("courseLocation", getCourseLocation())
            .append("classCategory", getClassCategory())
            .append("ageGroup", getAgeGroup())
            .append("totalQuota", getTotalQuota())
            .append("remainingQuota2", getRemainingQuota2())
            .append("classTime", getClassTime())
            .append("section", getSection())
            .append("price", getPrice())
            .append("bmKssj", getBmKssj())
            .append("bmJssj", getBmJssj())
            .append("kkKksj", getKkKksj())
            .append("kkJssj", getKkJssj())
            .append("courseState", getCourseState())
            .append("exchangeIntegral", getExchangeIntegral())
            .append("notice", getNotice())
            .append("id", getId())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
